﻿Imports System.Resources
Imports System.Threading
Imports Biz
Imports BLL


Public Class ctrlListaBusquedas

    Private _llamador As frmMainMetro
    Public _oBusqueda As cBusqueda
    Private _RM As ResourceManager


    Public Sub SetIdioma()

        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        btnNuevo.Text = _RM.GetString("btnNuevaBusqueda")
        btnEditar.Text = _RM.GetString("btnEditar")
        btnEliminar.Text = _RM.GetString("btnEliminar")

        btnEditarRequisitos.Text = _RM.GetString("strEditarRequisitos")

        btnPublicacionesNuevo.Text = _RM.GetString("btnNuevaPublicacion")
        btnPublicacionesEditar.Text = _RM.GetString("btnEditar")
        btnPublicacionesEliminar.Text = _RM.GetString("btnEliminar")

        btnSoliNuevo.Text = _RM.GetString("btnNuevaSolicitud")
        btnSoliEditar.Text = _RM.GetString("btnEditar")
        btnSoliEliminar.Text = _RM.GetString("btnEliminar")

        btnEntrevistaNuevo.Text = _RM.GetString("btnNuevaEntrevista")
        btnEntrevistaEditar.Text = _RM.GetString("btnEditar")
        btnEntrevistaEliminar.Text = _RM.GetString("btnEliminar")

        btnFinalizarBusqueda.Text = _RM.GetString("btnFinalizarBusqueda")
        btnActivarBusqueda.Text = _RM.GetString("btnActivar")
        btnSuspenderBusqueda.Text = _RM.GetString("btnSuspender")

        btnSeleccionAddPostulante.Text = _RM.GetString("strSeleccionarPostulante")
        btnSeleccionRemovePostulante.Text = _RM.GetString("strRemoverPostulante")

        advTreeFiltrosBusquedas.Columns("colLista_Busq_Numero").Text = _RM.GetString("strNumero")
        advTreeFiltrosBusquedas.Columns("colLista_Busq_Titulo").Text = _RM.GetString("strTitulo")
        advTreeFiltrosBusquedas.Columns("colLista_Busq_Departamento").Text = _RM.GetString("strDepartamento")
        advTreeFiltrosBusquedas.Columns("colLista_Busq_InicioProg").Text = _RM.GetString("strInicioProg")
        advTreeFiltrosBusquedas.Columns("colLista_Busq_FinProg").Text = _RM.GetString("strFinProg")
        advTreeFiltrosBusquedas.Refresh()

        advTreeRequisitos.Columns("colRequisitosDescrip").Text = _RM.GetString("strDescripcion")
        advTreeRequisitos.Columns("colRequisitosDetalle").Text = _RM.GetString("strDetalle")
        advTreeRequisitos.Refresh()

        tabPropBusqueda.Text = _RM.GetString("strPropBusqueda")
        tabPublicaciones.Text = _RM.GetString("strPublicaciones")
        tabSolicitudes.Text = _RM.GetString("strSolicitudesRecibidas")
        tabProcesoSeleccion.Text = _RM.GetString("strProcesoSeleccion")

        lblTituloInicioProg.Text = _RM.GetString("strInicioProgramado") + ":"
        lblTituloFinProg.Text = _RM.GetString("strFinProgramado") + ":"
        lblTituloTel.Text = _RM.GetString("strTelParaPostulaciones") + ":"
        lblTituloEMail.Text = _RM.GetString("strEMailParaPostulaciones") + ":"
        lblTituloDepartamento.Text = _RM.GetString("strDepartamentoSolicitante") + ":"
        lblTituloResponsableSolicutud.Text = _RM.GetString("strResponsableSolicitud") + ":"
        lblTituloResponsableRRHH.Text = _RM.GetString("strResponsableRRHH") + ":"
        lblTituloDetalle.Text = _RM.GetString("strDetalle") + ":"
        lblTituloRequisitos.Text = _RM.GetString("strRequisitosDeBusqueda") + ":"

        lblTituloPublicacionNro.Text = _RM.GetString("strPublicacionNro") + ":"
        lblTituloPublicacionMedio.Text = _RM.GetString("strPublicacionMedio") + ":"
        lblTituloPublicacionDetalle.Text = _RM.GetString("strDetalle") + ":"
        lblTituloPublicacionFecha.Text = _RM.GetString("strFechaPublicacion") + ":"

        advTreePublicaciones.Columns("colPublicacionNumero").Text = _RM.GetString("strNumero")
        advTreePublicaciones.Columns("colPublicacionMedio").Text = _RM.GetString("strMedio")
        advTreePublicaciones.Columns("colPublicacionFecha").Text = _RM.GetString("strFecha")
        advTreePublicaciones.Refresh()

        advTreeSeleccion.Columns("colSel_Numero").Text = _RM.GetString("strNumero")
        advTreeSeleccion.Columns("colSel_Tipo").Text = _RM.GetString("strTipoDeSeleccion")
        advTreeSeleccion.Columns("colSel_Cantidad").Text = _RM.GetString("strCandidatos")
        advTreeSeleccion.Refresh()

        advTreeSeleccionPostulantes.Columns("colSelPostu_Numero").Text = _RM.GetString("strSolicitud")
        advTreeSeleccionPostulantes.Columns("colSelPostu_Postulante").Text = _RM.GetString("strPostulante")
        advTreeSeleccionPostulantes.Columns("colSelPostu_Tel").Text = _RM.GetString("strTelefono")
        advTreeSeleccionPostulantes.Columns("colSelPostu_Mail").Text = _RM.GetString("strEMail")
        advTreeSeleccionPostulantes.Columns("colSelPostu_FNac").Text = _RM.GetString("strFechaNacimiento")
        advTreeSeleccionPostulantes.Refresh()

        advTreeSolicitudes.Columns("colSoli_Numero").Text = _RM.GetString("strNumero")
        advTreeSolicitudes.Columns("colSoli_Fecha").Text = _RM.GetString("strFecha")
        advTreeSolicitudes.Columns("colSoli_Postulante").Text = _RM.GetString("strPostulante")
        advTreeSolicitudes.Columns("colSoli_PostulanteTel").Text = _RM.GetString("strTelefono")
        advTreeSolicitudes.Columns("colSoli_PostulanteMail").Text = _RM.GetString("strEMail")
        advTreeSolicitudes.Refresh()

        advTreeEntrevistas.Columns("colEnt_Numero").Text = _RM.GetString("strNumero")
        advTreeEntrevistas.Columns("colEnt_Fecha").Text = _RM.GetString("strFecha")
        advTreeEntrevistas.Columns("colEnt_Hora").Text = _RM.GetString("strHora")
        advTreeEntrevistas.Columns("colEnt_Tipo").Text = _RM.GetString("strTipoEntrevista")
        advTreeEntrevistas.Columns("colEnt_Realizada").Text = _RM.GetString("strRealizada")
        advTreeEntrevistas.Refresh()

        tabSoliSolicitud.Text = _RM.GetString("strSolicitudUP")
        tabSoliPostulante.Text = _RM.GetString("strPostulanteUP")
        tabSoliEstudios.Text = _RM.GetString("strEstudiosUP")
        tabSoliExperiencia.Text = _RM.GetString("strExperienciaUP")
        tabSoliObs.Text = _RM.GetString("strObservacionesUP")

        tabSoliEntrevistaEnt.Text = _RM.GetString("strEntrevistaUP")
        tabSoliEntrevistaDetalle.Text = _RM.GetString("strDetalleUP")
        tabSoliEntrevistaObs.Text = _RM.GetString("strObservacionesUP")

        lblTituloSoliNumero.Text = _RM.GetString("strNumero") + ":"
        lblTituloSoliFecha.Text = _RM.GetString("strFecha") + ":"
        lblTituloSoliObs.Text = _RM.GetString("strObservaciones") + ":"

        lblTituloEntNumero.Text = _RM.GetString("strNumero") + ":"
        lblTituloEntFecha.Text = _RM.GetString("strFecha") + ":"
        lblTituloEntHora.Text = _RM.GetString("strHora") + ":"
        lblTituloEntLugar.Text = _RM.GetString("strLugar") + ":"

        lblTituloPostuTipoDoc.Text = _RM.GetString("strTipoDocumento") + ":"
        lblTituloPostuNroDoc.Text = _RM.GetString("strNroDocumento") + ":"
        lblTituloPostuNombre.Text = _RM.GetString("strNombre") + ":"
        lblTituloPostuNacimiento.Text = _RM.GetString("strNacimiento") + ":"
        lblTituloPostuEMail.Text = _RM.GetString("strEMail") + ":"

        lblTituloEntNumero.Text = _RM.GetString("strNumero") + ":"
        lblTituloEntFecha.Text = _RM.GetString("strFecha") + ":"
        lblTituloEntHora.Text = _RM.GetString("strHora") + ":"
        lblTituloEntLugar.Text = _RM.GetString("strLugar") + ":"

        SetAyudaContextual()

    End Sub

    Public Property Llamador() As frmMainMetro
        Get
            Return _llamador
        End Get
        Set(value As frmMainMetro)
            _llamador = value
        End Set
    End Property

    Public Sub CargarGrillaBusquedas()
        Dim oBusqueda As cBusqueda
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node

        Dim itemStyleActivo As DevComponents.DotNetBar.ElementStyle
        Dim itemStyleSuspendido As DevComponents.DotNetBar.ElementStyle
        Dim itemStyleFinalizado As DevComponents.DotNetBar.ElementStyle

        ' Estado búsqueda ACTIVO
        itemStyleActivo = New DevComponents.DotNetBar.ElementStyle
        itemStyleActivo.TextColor = Color.Green
        itemStyleActivo.Name = "Activo"
        advTreeFiltrosBusquedas.Styles.Add(itemStyleActivo)

        ' Estado búsqueda SUSPENDIDO
        itemStyleSuspendido = New DevComponents.DotNetBar.ElementStyle
        itemStyleSuspendido.TextColor = Color.Orange
        itemStyleSuspendido.Name = "Suspendido"
        advTreeFiltrosBusquedas.Styles.Add(itemStyleSuspendido)

        ' Estado búsqueda FINALIZADO
        itemStyleFinalizado = New DevComponents.DotNetBar.ElementStyle
        itemStyleFinalizado.TextColor = Color.Gray
        itemStyleFinalizado.Name = "Finalizado"
        advTreeFiltrosBusquedas.Styles.Add(itemStyleFinalizado)


        advTreeFiltrosBusquedas.BeginUpdate()

        advTreeFiltrosBusquedas.Nodes.Clear()

        Try
            If Not AppCurrentState.UsuarioLogueado Is Nothing Then
                If GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.ConsultaBusquedas)) Then
                    colObjetos = GestorBusqueda.Instance.Consultar
                End If
            End If

            If Not colObjetos Is Nothing Then

                For Each oBusqueda In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oBusqueda.Busq_Numero
                    oNode.Text = oBusqueda.Busq_Numero
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.Busq_Titulo))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.oDepartamento.Dep_Descrip))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.Busq_FInicioProg))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.Busq_FFinProg))

                    If oBusqueda.oEstado_Busqueda.EstB_Codigo = 1 Then
                        oNode.Style = advTreeFiltrosBusquedas.Styles("Activo")
                    ElseIf oBusqueda.oEstado_Busqueda.EstB_Codigo = 2 Then
                        oNode.Style = advTreeFiltrosBusquedas.Styles("Suspendido")
                    Else
                        oNode.Style = advTreeFiltrosBusquedas.Styles("Finalizado")
                    End If

                    advTreeFiltrosBusquedas.Nodes.Add(oNode)

                Next
            End If

            If advTreeFiltrosBusquedas.Nodes.Count > 0 Then
                advTreeFiltrosBusquedas.SelectedIndex = 0
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        advTreeFiltrosBusquedas.EndUpdate()

        advTreeFiltrosBusquedas.Refresh()

    End Sub

    Public Sub CargarGrilla()
        Dim oBusqueda As cBusqueda
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeSolicitudes.BeginUpdate()

        advTreeSolicitudes.Nodes.Clear()

        Try
            colObjetos = GestorBusqueda.Instance.Consultar

            If Not colObjetos Is Nothing Then

                For Each oBusqueda In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oBusqueda.Busq_Numero
                    oNode.Text = oBusqueda.Busq_Numero
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.Busq_Titulo))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.Busq_FInicioProg))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.Busq_FFinProg))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.oDepartamento.Dep_Descrip))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.oEmpleadoSectorSel.Emp_NombreAp))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oBusqueda.oEstado_Busqueda.EstB_Descrip))

                    advTreeSolicitudes.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.BusquedaFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        If advTreeSolicitudes.Nodes.Count > 0 Then
            advTreeSolicitudes.SelectedIndex = 0
        End If

        advTreeSolicitudes.EndUpdate()

        advTreeSolicitudes.Refresh()

    End Sub

    Public Sub CargarGrillaRequisitos()
        Dim oRequisito As cRequisito
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeRequisitos.BeginUpdate()

        advTreeRequisitos.Nodes.Clear()

        Try
            colObjetos = GestorRequisito.Instance.ConsultarPorBusqueda(_oBusqueda)

            If Not colObjetos Is Nothing Then

                For Each oRequisito In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oRequisito.Req_Item
                    oNode.Text = oRequisito.Req_Descrip
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oRequisito.Req_Detalle))

                    advTreeRequisitos.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.RequisitoFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        If advTreeRequisitos.Nodes.Count > 0 Then
            advTreeRequisitos.SelectedIndex = 0
        End If

        advTreeRequisitos.EndUpdate()

        advTreeRequisitos.Refresh()

    End Sub

    Public Sub CargarGrillaPublicaciones()
        Dim oPublicacion As cPublicacion
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreePublicaciones.BeginUpdate()

        advTreePublicaciones.Nodes.Clear()

        Try
            colObjetos = GestorPublicacion.Instance.ConsultarPorBusqueda(_oBusqueda)

            If Not colObjetos Is Nothing Then

                For Each oPublicacion In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oPublicacion.Pub_Numero
                    oNode.Text = oPublicacion.Pub_Numero
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oPublicacion.oMedio_Busqueda.MedB_Descrip))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oPublicacion.Pub_FechaPublicacion))

                    advTreePublicaciones.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.PublicacionFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        If advTreePublicaciones.Nodes.Count > 0 Then
            advTreePublicaciones.SelectedIndex = 0
        End If

        advTreePublicaciones.EndUpdate()

        advTreePublicaciones.Refresh()

    End Sub

    Public Sub CargarGrillaSolicitudes()
        Dim oSolicitud As cSolicitud
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeSolicitudes.BeginUpdate()

        advTreeSolicitudes.Nodes.Clear()

        Try
            colObjetos = GestorSolicitud.Instance.ConsultarPorBusqueda(_oBusqueda)

            If Not colObjetos Is Nothing Then

                For Each oSolicitud In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oSolicitud.Soli_Numero
                    oNode.Text = oSolicitud.Soli_Numero
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolicitud.Soli_Fecha))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolicitud.oPostulante.Postu_NombreAp))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolicitud.oPostulante.Postu_Telefono))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolicitud.oPostulante.Postu_Mail))

                    advTreeSolicitudes.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.SolicitudFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        If advTreeSolicitudes.Nodes.Count > 0 Then
            advTreeSolicitudes.SelectedIndex = 0
        End If

        advTreeSolicitudes.EndUpdate()

        advTreeSolicitudes.Refresh()

    End Sub

    Public Sub CargarGrillaEntrevistas(Soli_Numero As Int32)
        Dim oEntrevista As cEntrevista
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeEntrevistas.BeginUpdate()

        advTreeEntrevistas.Nodes.Clear()

        oEntrevista = New cEntrevista
        oEntrevista.Soli_Numero = Soli_Numero

        Try

            colObjetos = GestorEntrevista.Instance.Consultar(oEntrevista)

            oEntrevista = Nothing

            If Not colObjetos Is Nothing Then

                For Each oEntrevista In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oEntrevista.Ent_Numero
                    oNode.Text = oEntrevista.Ent_Numero
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oEntrevista.Ent_Fecha))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oEntrevista.Ent_Hora))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oEntrevista.Tipo_Entrevista.TEnt_Descrip))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oEntrevista.Ent_Realizada))

                    advTreeEntrevistas.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.EntrevistaFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        If advTreeEntrevistas.Nodes.Count > 0 Then
            advTreeEntrevistas.SelectedIndex = 0
        End If

        advTreeEntrevistas.EndUpdate()

        advTreeEntrevistas.Refresh()

    End Sub

    Public Sub CargarGrillaSeleccion(iBusq_Numero As Int16)
        Dim oBusqueda As cBusqueda
        Dim oSeleccion As cSeleccion
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeSeleccion.BeginUpdate()

        advTreeSeleccion.Nodes.Clear()

        oBusqueda = New cBusqueda
        oBusqueda.Busq_Numero = iBusq_Numero

        Try

            colObjetos = GestorSeleccion.Instance.Consultar(oBusqueda)

            oBusqueda = Nothing

            If Not colObjetos Is Nothing Then

                For Each oSeleccion In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oSeleccion.Sel_Numero
                    oNode.Text = oSeleccion.Sel_Numero
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSeleccion.oTipo_Seleccion.TSel_Descrip))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSeleccion.PostulantesSeleccionados))

                    advTreeSeleccion.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.SeleccionFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        If advTreeSeleccion.Nodes.Count > 0 Then
            advTreeSeleccion.SelectedIndex = 0
        End If

        advTreeSeleccion.EndUpdate()

        advTreeSeleccion.Refresh()

    End Sub

    Public Sub CargarGrillaSeleccionPostulantes(Busq_Numero As Int16, Sel_Numero As Int16)
        Dim oSeleccion As cSeleccion
        Dim oSolSel As cSolicitud_Seleccion
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeSeleccionPostulantes.BeginUpdate()

        advTreeSeleccionPostulantes.Nodes.Clear()

        oSeleccion = New cSeleccion
        oSeleccion.oBusqueda.Busq_Numero = Busq_Numero
        oSeleccion.Sel_Numero = Sel_Numero

        Try

            colObjetos = GestorSolicitud_Seleccion.Instance.ConsultarPorSeleccion(oSeleccion, Sel_Numero)

            oSeleccion = Nothing

            If Not colObjetos Is Nothing Then

                For Each oSolSel In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oSolSel.oSolicitud.Soli_Numero
                    oNode.Text = oSolSel.oSolicitud.Soli_Numero
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolSel.oSolicitud.oPostulante.Postu_NombreAp))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolSel.oSolicitud.oPostulante.Postu_Telefono))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolSel.oSolicitud.oPostulante.Postu_Mail))
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oSolSel.oSolicitud.oPostulante.Postu_FNac))

                    advTreeSeleccionPostulantes.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.Solicitud_SeleccionFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        If advTreeSeleccionPostulantes.Nodes.Count > 0 Then
            advTreeSeleccionPostulantes.SelectedIndex = 0
        End If

        advTreeSeleccionPostulantes.EndUpdate()

        advTreeSeleccionPostulantes.Refresh()

    End Sub

    Private Sub btnNuevo_Click(sender As Object, e As EventArgs) Handles btnNuevo.Click

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            _llamador._ctrlNuevaBusqueda.CargarComboDepartamentos()
            _llamador._ctrlNuevaBusqueda.CargarComboResponsableSolicitud()
            _llamador._ctrlNuevaBusqueda.CargarComboResponsableRRHH()
            _llamador._ctrlNuevaBusqueda.MostrarParaAlta()
            _llamador.ShowModalPanel(_llamador._ctrlNuevaBusqueda, DevComponents.DotNetBar.Controls.eSlideSide.Left)

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnEliminar_Click(sender As Object, e As EventArgs) Handles btnEliminar.Click
        Dim oAux As cBusqueda = New cBusqueda

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeFiltrosBusquedas.SelectedNode Is Nothing Then
                If MessageBox.Show("Confirma la eliminación del registro?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux.Busq_Numero = _oBusqueda.Busq_Numero

                    Try
                        GestorBusqueda.Instance.Eliminar(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.BusquedaBaja))

                        _llamador.RefrescarGrillaFiltroBusquedas()

                    Catch ex As Excepciones.BusquedaFalloBaja
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub advTreeFiltrosBusquedas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles advTreeFiltrosBusquedas.SelectedIndexChanged
        Dim iBusq_Numero As Integer
        Dim oAux As cBusqueda = New cBusqueda


        If Not advTreeFiltrosBusquedas.SelectedNode Is Nothing Then
            iBusq_Numero = Utils.Convert.ToInt16(advTreeFiltrosBusquedas.SelectedNode.Tag)

            oAux.Busq_Numero = iBusq_Numero

            Try
                _oBusqueda = GestorBusqueda.Instance.Buscar(oAux)

            Catch ex As Excepciones.BusquedaFalloBuscar
                Main.ManejarExcepcion(ex)
            Catch ex As Exception
                Main.ManejarExcepcion(ex)
            End Try

            MostrarBusqueda(_oBusqueda)
        Else
            MostrarBusqueda(Nothing)
        End If
    End Sub

    Private Sub MostrarBusqueda(oAux As cBusqueda)
        If Not oAux Is Nothing Then
            lblTituloBusqueda.Text = "(" + oAux.Busq_Numero.ToString + ") " + oAux.Busq_Titulo

            lblInicioProg.Text = oAux.Busq_FInicioProg
            lblFinProg.Text = oAux.Busq_FFinProg
            lblTelPostulaciones.Text = oAux.Busq_TelPostulaciones
            lblEMail.Text = oAux.Busq_MailPostulaciones
            lblDepartamento.Text = oAux.oDepartamento.Dep_Descrip
            lblResponsableSolicitud.Text = oAux.oEmpleadoSectorSel.Emp_NombreAp
            lblResponsableRRHH.Text = oAux.oEmpleadoRRHH.Emp_NombreAp
            txtDetalle.Text = oAux.Busq_Detalle

            CargarGrillaRequisitos()
            CargarGrillaPublicaciones()
            CargarGrillaSolicitudes()
            CargarGrillaSeleccion(_oBusqueda.Busq_Numero)
        Else
            lblTituloBusqueda.Text = ""

            lblInicioProg.Text = ""
            lblFinProg.Text = ""
            lblTelPostulaciones.Text = ""
            lblEMail.Text = ""
            lblDepartamento.Text = ""
            lblResponsableSolicitud.Text = ""
            lblResponsableRRHH.Text = ""
            txtDetalle.Text = ""

            txtPublicacionDetalle.Text = ""
            lblPublicacionNro.Text = ""
            lblPublicacionFecha.Text = ""
            lblPublicacionMedio.Text = ""

            txtSoliObs.Text = ""
            lblSoliNumero.Text = ""
            lblSoliFecha.Text = ""

            lblEntNumero.Text = ""
            lblEntHora.Text = ""
            lblEntFecha.Text = ""
            lblEntLugar.Text = ""
            txtEntrevistaDetalle.Text = ""
            txtEntrevistaObservaciones.Text = ""

            lblPostuTipoDoc.Text = ""
            lblPostuNroDoc.Text = ""
            lblPostuEMail.Text = ""
            lblPostuNacimiento.Text = ""
            lblPostuNombre.Text = ""
            lblPostuTelefono.Text = ""

            txtPostulanteEstudios.Text = ""
            txtPostulanteExperiencia.Text = ""
            txtPostulanteObs.Text = ""



            CargarGrillaRequisitos()
            CargarGrillaPublicaciones()
            CargarGrillaSolicitudes()
            CargarGrillaSeleccion(_oBusqueda.Busq_Numero)
        End If
    End Sub

    Private Sub MostrarPublicacion(oAux As cPublicacion)
        If Not oAux Is Nothing Then
            lblPublicacionNro.Text = oAux.Pub_Numero
            lblPublicacionMedio.Text = oAux.oMedio_Busqueda.MedB_Descrip
            lblPublicacionFecha.Text = oAux.Pub_FechaPublicacion
            txtPublicacionDetalle.Text = oAux.Pub_Detalle
        Else
            lblPublicacionNro.Text = ""
            lblPublicacionMedio.Text = ""
            lblPublicacionFecha.Text = ""
            txtPublicacionDetalle.Text = ""
        End If
    End Sub

    Private Sub MostrarSolicitud(oAux As cSolicitud)
        If Not oAux Is Nothing Then
            lblSoliNumero.Text = oAux.Soli_Numero
            lblSoliFecha.Text = oAux.Soli_Fecha
            txtSoliObs.Text = oAux.Soli_Observaciones

            lblPostuTipoDoc.Text = oAux.oPostulante.oTipo_Documento.TDoc_Codigo
            lblPostuNroDoc.Text = oAux.oPostulante.Postu_NroDoc
            lblPostuNombre.Text = oAux.oPostulante.Postu_NombreAp
            lblPostuNacimiento.Text = oAux.oPostulante.Postu_FNac
            lblPostuTelefono.Text = oAux.oPostulante.Postu_Telefono
            lblPostuEMail.Text = oAux.oPostulante.Postu_Mail

            txtPostulanteEstudios.Text = oAux.oPostulante.Postu_Estudios
            txtPostulanteExperiencia.Text = oAux.oPostulante.Postu_Experiencia
            txtPostulanteObs.Text = oAux.oPostulante.Postu_Obs
        Else
            lblSoliNumero.Text = ""
            lblSoliFecha.Text = ""
            txtSoliObs.Text = ""

            lblPostuTipoDoc.Text = ""
            lblPostuNroDoc.Text = ""
            lblPostuNombre.Text = ""
            lblPostuNacimiento.Text = ""
            lblPostuTelefono.Text = ""
            lblPostuEMail.Text = ""

            txtPostulanteEstudios.Text = ""
            txtPostulanteExperiencia.Text = ""
            txtPostulanteObs.Text = ""
        End If
    End Sub

    Private Sub MostrarEntrevista(oAux As cEntrevista)
        If Not oAux Is Nothing Then
            lblEntNumero.Text = oAux.Ent_Numero
            lblEntFecha.Text = oAux.Ent_Fecha
            lblEntHora.Text = oAux.Ent_Hora
            lblEntLugar.Text = oAux.Ent_Lugar

            txtEntrevistaDetalle.Text = oAux.Ent_Detalle
            txtEntrevistaObservaciones.Text = oAux.Ent_Obs
        Else
            lblEntNumero.Text = ""
            lblEntFecha.Text = ""
            lblEntHora.Text = ""
            lblEntLugar.Text = ""

            txtEntrevistaDetalle.Text = ""
            txtEntrevistaObservaciones.Text = ""
        End If
    End Sub

    Private Sub advTreePublicaciones_SelectedIndexChanged(sender As Object, e As EventArgs) Handles advTreePublicaciones.SelectedIndexChanged
        Dim iPub_Numero As Integer
        Dim oAux As cPublicacion = New cPublicacion


        If Not advTreePublicaciones.SelectedNode Is Nothing Then
            iPub_Numero = Utils.Convert.ToInt16(advTreePublicaciones.SelectedNode.Tag)

            oAux.Busq_Numero = _oBusqueda.Busq_Numero
            oAux.Pub_Numero = iPub_Numero

            Try
                oAux = GestorPublicacion.Instance.Buscar(oAux)

            Catch ex As Excepciones.PublicacionFalloBuscar
                Main.ManejarExcepcion(ex)
            Catch ex As Exception
                Main.ManejarExcepcion(ex)
            End Try

            MostrarPublicacion(oAux)
        Else
            MostrarPublicacion(Nothing)
        End If
    End Sub

    Private Sub advTreeSolicitudes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles advTreeSolicitudes.SelectedIndexChanged
        Dim iSoli_Numero As Int32
        Dim oAux As cSolicitud = New cSolicitud


        If Not advTreeSolicitudes.SelectedNode Is Nothing Then
            iSoli_Numero = Utils.Convert.ToInt32(advTreeSolicitudes.SelectedNode.Tag)

            oAux.Soli_Numero = iSoli_Numero

            Try
                oAux = GestorSolicitud.Instance.Buscar(oAux)

            Catch ex As Excepciones.SolicitudFalloBuscar
                Main.ManejarExcepcion(ex)
            Catch ex As Exception
                Main.ManejarExcepcion(ex)
            End Try

            MostrarSolicitud(oAux)

            CargarGrillaEntrevistas(iSoli_Numero)
        Else
            CargarGrillaEntrevistas(Nothing)
        End If
    End Sub

    Private Sub advTreeEntrevistas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles advTreeEntrevistas.SelectedIndexChanged
        Dim iSoli_Numero As Int32
        Dim iEnt_Numero As Int16
        Dim oAux As cEntrevista = New cEntrevista


        If Not advTreeEntrevistas.SelectedNode Is Nothing Then
            iSoli_Numero = Utils.Convert.ToInt32(advTreeSolicitudes.SelectedNode.Tag)
            iEnt_Numero = Utils.Convert.ToInt16(advTreeEntrevistas.SelectedNode.Tag)

            oAux.Soli_Numero = iSoli_Numero
            oAux.Ent_Numero = iEnt_Numero

            Try
                oAux = GestorEntrevista.Instance.Buscar(oAux)

            Catch ex As Excepciones.EntrevistaFalloBuscar
                Main.ManejarExcepcion(ex)
            Catch ex As Exception
                Main.ManejarExcepcion(ex)
            End Try

            MostrarEntrevista(oAux)
        Else
            MostrarEntrevista(Nothing)
        End If
    End Sub

    Private Sub advTreeSeleccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles advTreeSeleccion.SelectedIndexChanged
        Dim iBusq_Numero As Int16
        Dim iSel_Numero As Int16


        If Not advTreeSeleccion.SelectedNode Is Nothing Then
            iBusq_Numero = _oBusqueda.Busq_Numero
            iSel_Numero = Utils.Convert.ToInt16(advTreeSeleccion.SelectedNode.Tag)

            CargarGrillaSeleccionPostulantes(iBusq_Numero, iSel_Numero)
        Else
            CargarGrillaSeleccionPostulantes(0, 0)
        End If
    End Sub

    Private Sub btnEditarRequisitos_Click(sender As Object, e As EventArgs) Handles btnEditarRequisitos.Click

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                _llamador._ctrlEdicionRequisitos.MostrarParaEdicion(_oBusqueda)
                _llamador.ShowModalPanel(_llamador._ctrlEdicionRequisitos, DevComponents.DotNetBar.Controls.eSlideSide.Left)
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnEditar_Click(sender As Object, e As EventArgs) Handles btnEditar.Click

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            _llamador._ctrlNuevaBusqueda.CargarComboDepartamentos()
            _llamador._ctrlNuevaBusqueda.CargarComboResponsableSolicitud()
            _llamador._ctrlNuevaBusqueda.CargarComboResponsableRRHH()
            _llamador._ctrlNuevaBusqueda.MostrarParaEdicion(_oBusqueda)
            _llamador.ShowModalPanel(_llamador._ctrlNuevaBusqueda, DevComponents.DotNetBar.Controls.eSlideSide.Left)

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnPublicacionesNuevo_Click(sender As Object, e As EventArgs) Handles btnPublicacionesNuevo.Click

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.PublicacionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                _llamador._ctrlNuevoPublicacion.MostrarParaAlta(_oBusqueda)
                _llamador.ShowModalPanel(_llamador._ctrlNuevoPublicacion, DevComponents.DotNetBar.Controls.eSlideSide.Left)
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnPublicacionesEditar_Click(sender As Object, e As EventArgs) Handles btnPublicacionesEditar.Click
        Dim oAux As cPublicacion = New cPublicacion

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.PublicacionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreePublicaciones.SelectedNode Is Nothing Then
                Try
                    oAux.Busq_Numero = _oBusqueda.Busq_Numero
                    oAux.Pub_Numero = Utils.Convert.ToInt16(advTreePublicaciones.SelectedNode.Tag)

                    Try
                        oAux = GestorPublicacion.Instance.Buscar(oAux)

                    Catch ex As Excepciones.PublicacionFalloBuscar
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try

                    _llamador._ctrlNuevoPublicacion.MostrarParaEdicion(oAux)
                    _llamador.ShowModalPanel(_llamador._ctrlNuevoPublicacion, DevComponents.DotNetBar.Controls.eSlideSide.Left)

                Catch ex As Excepciones.PublicacionFalloBuscar
                    Main.ManejarExcepcion(ex)
                End Try

            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnPublicacionesEliminar_Click(sender As Object, e As EventArgs) Handles btnPublicacionesEliminar.Click
        Dim oAux As cPublicacion = New cPublicacion

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.PublicacionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreePublicaciones.SelectedNode Is Nothing Then
                If MessageBox.Show("Confirma la eliminación del registro?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux.Busq_Numero = _oBusqueda.Busq_Numero
                    oAux.Pub_Numero = Utils.Convert.ToInt16(advTreePublicaciones.SelectedNode.Tag)

                    Try
                        GestorPublicacion.Instance.Eliminar(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.PublicacionBaja))

                        _llamador.RefrescarGrillaPublicaciones()

                    Catch ex As Excepciones.PublicacionFalloBaja
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnSoliEliminar_Click(sender As Object, e As EventArgs) Handles btnSoliEliminar.Click
        Dim oAux As cSolicitud = New cSolicitud

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionSolicitudes)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeSolicitudes.SelectedNode Is Nothing Then
                If MessageBox.Show("Confirma la eliminación del registro?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux.Soli_Numero = Utils.Convert.ToInt16(advTreeSolicitudes.SelectedNode.Tag)

                    Try
                        GestorSolicitud.Instance.Eliminar(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.SolicitudBaja))

                        _llamador.RefrescarGrillaSolicitudes()

                    Catch ex As Excepciones.SolicitudFalloBaja
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnSoliEditar_Click(sender As Object, e As EventArgs) Handles btnSoliEditar.Click
        Dim oAux As cSolicitud = New cSolicitud

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionSolicitudes)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeSolicitudes.SelectedNode Is Nothing Then
                Try
                    oAux.Soli_Numero = Utils.Convert.ToInt16(advTreeSolicitudes.SelectedNode.Tag)
                    oAux = GestorSolicitud.Instance.Buscar(oAux)

                    _llamador._ctrlNuevaSolicitud.MostrarParaEdicion(oAux)
                    _llamador.ShowModalPanel(_llamador._ctrlNuevaSolicitud, DevComponents.DotNetBar.Controls.eSlideSide.Left)

                Catch ex As Excepciones.Solicitud_SeleccionFalloBuscar
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try

            End If


        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnSoliNuevo_Click(sender As Object, e As EventArgs) Handles btnSoliNuevo.Click

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionSolicitudes)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                _llamador._ctrlNuevaSolicitud.MostrarParaAlta(_oBusqueda)
                _llamador.ShowModalPanel(_llamador._ctrlNuevaSolicitud, DevComponents.DotNetBar.Controls.eSlideSide.Left)
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnEntrevistaEliminar_Click(sender As Object, e As EventArgs) Handles btnEntrevistaEliminar.Click
        Dim oAux As cEntrevista = New cEntrevista

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionEntrevistas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeEntrevistas.SelectedNode Is Nothing Then
                If MessageBox.Show("Confirma la eliminación del registro?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux.Soli_Numero = Utils.Convert.ToInt16(advTreeSolicitudes.SelectedNode.Tag)
                    oAux.Ent_Numero = Utils.Convert.ToInt16(advTreeEntrevistas.SelectedNode.Tag)

                    Try
                        GestorEntrevista.Instance.Eliminar(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.EntrevistaBaja))

                        _llamador.RefrescarGrillaEntrevistas(oAux.Soli_Numero)

                    Catch ex As Excepciones.EntrevistaFalloBaja
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnEntrevistaEditar_Click(sender As Object, e As EventArgs) Handles btnEntrevistaEditar.Click
        Dim oAux As cEntrevista = New cEntrevista

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionEntrevistas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeEntrevistas.SelectedNode Is Nothing Then
                Try
                    oAux.Soli_Numero = Utils.Convert.ToInt16(advTreeSolicitudes.SelectedNode.Tag)
                    oAux.Ent_Numero = Utils.Convert.ToInt16(advTreeEntrevistas.SelectedNode.Tag)
                    oAux = GestorEntrevista.Instance.Buscar(oAux)

                    _llamador._ctrlNuevaEntrevista.MostrarParaEdicion(oAux)
                    _llamador.ShowModalPanel(_llamador._ctrlNuevaEntrevista, DevComponents.DotNetBar.Controls.eSlideSide.Left)

                Catch ex As Excepciones.EntrevistaFalloBuscar
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try

            End If


        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnEntrevistaNuevo_Click(sender As Object, e As EventArgs) Handles btnEntrevistaNuevo.Click
        Dim oSolicitud As cSolicitud = New cSolicitud

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionEntrevistas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not advTreeSolicitudes.SelectedNode Is Nothing Then
                oSolicitud.Soli_Numero = Utils.Convert.ToInt16(advTreeSolicitudes.SelectedNode.Tag)

                Try
                    oSolicitud = GestorSolicitud.Instance.Buscar(oSolicitud)

                Catch ex As Excepciones.SolicitudFalloBuscar
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try

                _llamador._ctrlNuevaEntrevista.MostrarParaAlta(oSolicitud)
                _llamador.ShowModalPanel(_llamador._ctrlNuevaEntrevista, DevComponents.DotNetBar.Controls.eSlideSide.Left)

            End If


        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnFinalizarBusqueda_Click(sender As Object, e As EventArgs) Handles btnFinalizarBusqueda.Click
        Dim oAux As cBusqueda = New cBusqueda

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                If MessageBox.Show("Confirma el cambio de estado de la búsqueda?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux = _oBusqueda

                    Try
                        GestorBusqueda.Instance.Finalizar(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.BusquedaFinalizar))

                        _llamador.RefrescarGrillaFiltroBusquedas()

                    Catch ex As Excepciones.BusquedaFalloEditar
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnActivarBusqueda_Click(sender As Object, e As EventArgs) Handles btnActivarBusqueda.Click
        Dim oAux As cBusqueda = New cBusqueda

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                If MessageBox.Show("Confirma el cambio de estado de la búsqueda?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux = _oBusqueda

                    Try
                        GestorBusqueda.Instance.Activar(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.BusquedaActivar))

                        _llamador.RefrescarGrillaFiltroBusquedas()

                    Catch ex As Excepciones.BusquedaFalloEditar
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnSuspenderBusqueda_Click(sender As Object, e As EventArgs) Handles btnSuspenderBusqueda.Click
        Dim oAux As cBusqueda = New cBusqueda

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                If MessageBox.Show("Confirma el cambio de estado de la búsqueda?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                    oAux = _oBusqueda

                    Try
                        GestorBusqueda.Instance.Suspender(oAux)
                        GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.BusquedaSuspender))

                        _llamador.RefrescarGrillaFiltroBusquedas()

                    Catch ex As Excepciones.BusquedaFalloEditar
                        Main.ManejarExcepcion(ex)
                    Catch ex As Exception
                        Main.ManejarExcepcion(ex)
                    End Try
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnSeleccionAddPostulante_Click(sender As Object, e As EventArgs) Handles btnSeleccionAddPostulante.Click
        Dim oSeleccion As cSeleccion = New cSeleccion

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                oSeleccion.oBusqueda.Busq_Numero = _oBusqueda.Busq_Numero
                oSeleccion.Sel_Numero = Utils.Convert.ToInt16(advTreeSeleccion.SelectedNode.Tag)

                _llamador._ctrlNuevaSeleccionPostulante.MostrarParaEdicion(oSeleccion)
                _llamador.ShowModalPanel(_llamador._ctrlNuevaSeleccionPostulante, DevComponents.DotNetBar.Controls.eSlideSide.Left)
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Private Sub btnSeleccionRemovePostulante_Click(sender As Object, e As EventArgs) Handles btnSeleccionRemovePostulante.Click
        Dim oAux As cSolicitud_Seleccion = New cSolicitud_Seleccion

        Try

            If Not GestorUsuario.Instance.TienePermiso(AppCurrentState.UsuarioLogueado, New cPatente(Utils.Enumeradores.Patentes.GestionBusquedas)) Then
                _llamador.StatusBarLabel.Text = "El usuario no posee permisos suficientes para realizar esta operación"
                Exit Sub
            End If

            If Not _oBusqueda Is Nothing Then
                If Not advTreeSeleccionPostulantes.SelectedNode Is Nothing Then
                    If MessageBox.Show("Confirma la eliminación del registro?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                        oAux.Busq_Numero = _oBusqueda.Busq_Numero
                        oAux.Sel_Numero = Utils.Convert.ToInt16(advTreeSeleccion.SelectedNode.Tag)
                        oAux.oSolicitud.Soli_Numero = Utils.Convert.ToInt16(advTreeSeleccionPostulantes.SelectedNode.Tag)

                        Try
                            GestorSolicitud_Seleccion.Instance.Eliminar(oAux)
                            GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.SolicitudBaja))

                            _llamador.RefrescarGrillaSeleccion(_oBusqueda.Busq_Numero)

                        Catch ex As Excepciones.SeleccionFalloBaja
                            Main.ManejarExcepcion(ex)
                        Catch ex As Exception
                            Main.ManejarExcepcion(ex)
                        End Try
                    End If
                End If
            End If

        Catch ex As Excepciones.UsuarioFalloConsultaTieneAcceso
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

    End Sub

    Public Sub SeleccionarBusquedaEnGrilla()
        If advTreeFiltrosBusquedas.Nodes.Count > 0 Then
            advTreeFiltrosBusquedas.SelectedIndex = 0
        End If
    End Sub

    Public Sub SetAyudaContextual()
        _RM = New ResourceManager("UI.AyudaContextual", System.Reflection.Assembly.GetExecutingAssembly)

        HelpProviderForm.SetHelpString(advTreeFiltrosBusquedas, "Lista de búsquedas cargadas en el sistema")
        HelpProviderForm.SetHelpString(advTreeRequisitos, "Lista de requisitos de la búsqueda seleccionada")
        HelpProviderForm.SetHelpString(advTreePublicaciones, "Lista de publicaciones de la búsqueda seleccionada")
        HelpProviderForm.SetHelpString(advTreeSolicitudes, "Lista de solicitudes recibidas para la búsqueda seleccionada")
        HelpProviderForm.SetHelpString(advTreeEntrevistas, "Lista de entrevistas de la solicitud seleccionada")
        HelpProviderForm.SetHelpString(advTreeSeleccion, "Cantidad de candidatos seleccionados para la búsqueda")
        HelpProviderForm.SetHelpString(advTreeSeleccionPostulantes, "Lista de postulantes seleccionados")

    End Sub

    Public Sub Inicializar()

        CargarGrillaBusquedas()
        SetAyudaContextual()

    End Sub

End Class
